Skip to main content

Confirmation of Personal Information from the Tax Registry of the Independent Public Revenue Authority

This guide describes how to use the SOAP Web Service provided by the Independent Authority for Public Revenue (AADE) for verifying the information of natural persons from the tax registry. It focuses on the method getAFMIdentificationExt, which performs verification based on the individual's AFM (Tax Identification Number). The guide includes required parameters, authentication, audit logging requirements, input/output examples, and technical details necessary for integration into client applications.

Introduction

This document outlines the required parameters and usage instructions for the SOAP Web Service provided by the Independent Authority for Public Revenue (AADE) for verifying individual information using the method getAFMIdentificationExt.

Functionality Description

This method is invoked by the client application to verify an individual's data based on their Tax Identification Number (AFM).

Parameters

A. Service Endpoint URLs

  • Testing Environment: https://test.gsis.gr/esbpilot/individualConfirmationService
  • Production Environment: https://ked.gsis.gr/esb/individualConfirmationService

B. Client Application Authentication Details

Each request must include client authentication credentials (username and password) in the SOAP header:

<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-1">
<wsse:Username>******</wsse:Username>
<wsse:Password Type='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText'>*******</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>

C. Audit Record

Each request must include an Audit Record, which is a log record for all requests made to the GSIS Web Services:

Audit Record Fields:

  • auditTransactionId: Alphanumeric - transaction ID (e.g., "1", "2", etc.)
  • auditTransactionDate: DateTime in yyyy-mm-ddThh:mm:ssZ format (e.g., "2025-04-28T10:08:24Z")
  • auditProtocol: Alphanumeric - protocol number (e.g., "1123")
  • auditUnit: Alphanumeric - description of the business unit (e.g., "DEDDIE")
  • auditUserId: Alphanumeric - user ID (e.g., "1123")
  • auditUserIp: IP address (e.g., "0.0.0.0")

getAFMIdentificationExt Call Structure

Sample Request:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ind="http://gsis.ggps.interoperability/IndividualConfirmationInterface">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-134F28397E84840D3F14484484569051">
<wsse:Username>YourUsername</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">YourPassword</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<ind:getAFMIdentificationExtRequest>
<auditRecord>
<auditTransactionId>1</auditTransactionId>
<auditTransactionDate>2024-08-01T15:26:24Z</auditTransactionDate>
<auditUnit>GSIS</auditUnit>
<auditProtocol>1</auditProtocol>
<auditUserId>user</auditUserId>
<auditUserIp>0.0.0.0</auditUserIp>
</auditRecord>
<getAFMIdentificationExtRecord>
<afm>137248864</afm>
</getAFMIdentificationExtRecord>
</ind:getAFMIdentificationExtRequest>
</soapenv:Body>
</soapenv:Envelope>

Sample Response:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:getAFMIdentificationExtResponse xmlns:ns2="http://gsis.ggps.interoperability/IndividualConfirmationInterface">
<getAFMIdentificationExtRecord>
<afm>137248864</afm>
<id>Ξ028947</id>
<idType>1</idType>
<name>ΓΕΩΡΓΙΑ</name>
<surname>ΠΑΠΑΓΕΡΑΣΙΜΟΥ</surname>
<surname2>ΚΛΗΡΟΝΟΜΟΥ</surname2>
<fname>ΠΑΝΤΕΛΗΣ</fname>
<mname>ΑΓΛΑΙΑ</mname>
<birthYear>26/10/1951</birthYear>
<msg>Ταυτοποιείται ορθώς</msg>
</getAFMIdentificationExtRecord>
<callSequenceId>10026083056</callSequenceId>
<callSequenceDate>2025-05-28T12:38:03.087+03:00</callSequenceDate>
<errorRecord/>
</ns2:getAFMIdentificationExtResponse>
</soap:Body>
</soap:Envelope>

Error Responses

Error Code NameDescription
GEN_AUDIT_VALIDATION_INV_DATA_OR_UNAUTH_OPERUnauthorized usage of username/password for this method
GEN_AUDIT_VALIDATION_INVALID_AUDIT_DATAAudit record fields are invalid
GEN_INVALID_DATAInvalid input fields (e.g., AFM missing)
GEN_COMMUNICATION_ERRORCommunication error with external service (contact support)
GEN_DATABASE_CONNECTION_ERRORDatabase connection error (contact KED support)
GEN_GENERAL_ERRORUndefined error (contact KED support)
GEN_AUTHORIZATION_MAX_OPEN_CALLS_EXCEEDEDDaily call limit exceeded

Specific Method Errors (getAFMIdentificationExt)

Error CodeDescription
GEN_INVALID_DATAThe afm field is mandatory and cannot be empty
GEN_INVALID_DATAThe birthYear field is invalid
GEN_INVALID_DATAThe afm is not a valid Tax Identification Number

Calling the Service with Python

You can use Python's requests and xmltodict libraries:

import requests
import xmltodict

response = requests.post(url=endpoint_url, data=xml)
response_dict = xmltodict.parse(response.text)

Where:

  • endpoint_url is the appropriate URL (test or production)
  • xml is the request payload in XML format

We'd love your feedback
Was this helpful?